Monte Carlo CUDA
American Options Pricing Engine
GPU-accelerated Quasi-Monte Carlo with Sobol sequences & Brownian Bridge conditioning
github.com/sidx007/Monte-Carlo-cuda
American Options Pricing Engine
GPU-accelerated Quasi-Monte Carlo with Sobol sequences & Brownian Bridge conditioning
github.com/sidx007/Monte-Carlo-cuda
A reimplementation of Cvetanoska & Stojanovski's HPC paper on American option pricing, extended with true Quasi-Monte Carlo backends. American calls are priced as Bermudan options using GBM path simulation with backward induction โ sharing one unified math core across all five backends.
Reference implementation using LCG pseudo-random number generator. Single-threaded baseline for correctness verification and timing comparison.
Multi-core CPU parallelization with OpenMP. Both standard LCG and QMC (Sobol + Brownian Bridge) variants, scaling across all available CPU threads.
Full GPU acceleration โ each thread
simulates an independent path. Per-thread LCG seeded with (path_id+1)*1234567u for reproducible independent
streams.
True low-discrepancy QMC on GPU โ Sobol sequences with Brownian Bridge conditioning for better space-filling than pseudo-random, cutting variance at the same N.
N=100k paths โ relative speed
Path sweep โ pricing error vs N
| N (paths) | Serial | CUDA | QMC CUDA |
|---|---|---|---|
| 10k | ~0.8 | ~0.8 | ~0.3 |
| 100k | ~0.25 | ~0.25 | ~0.08 |
| 500k | ~0.12 | ~0.12 | ~0.02 |
| 1M | slow | fast | best |
Builds with CMake. CUDA is
optional โ if not installed the GPU executables are silently skipped. Default arch is sm_80 (A100); change CUDA_ARCHITECTURES for your GPU.
sm_75 Turing ยท sm_86 Ampere consumer ยท sm_89 Ada ยท
sm_90 Hopper